void ChanCoVar (WinSize, r0,c0, Ch0,Ch1,Ch2, m0,m1,m2, CoVar)
int   WinSize, r0,c0;
BYTE  ** Ch0;
BYTE  ** Ch1;
BYTE  ** Ch2;
float m0,m1,m2;
float CoVar[3][3];
{
   int    r,c,N;
   float  cv01,cv02,cv12;

   N = WinSize*WinSize;

   ChanVar (WinSize, r0,c0, Ch0,Ch1,Ch2, m0,m1,m2, 
            &CoVar[0][0], &CoVar[1][1], &CoVar[2][2]);

   cv01 = cv02 = cv12 = (float)0;
   for (r=r0; r<r0+WinSize; r++) {
      for (c=c0; c<c0+WinSize; c++) {
         cv01 += ((float)Ch0[r][c] - (float)m0) * ((float)Ch1[r][c] - (float)m1);
         cv02 += ((float)Ch0[r][c] - (float)m0) * ((float)Ch2[r][c] - (float)m2);
         cv12 += ((float)Ch1[r][c] - (float)m1) * ((float)Ch2[r][c] - (float)m2);
   }  }
   CoVar[0][1] = CoVar[1][0] = cv01/(N-1);
   CoVar[0][2] = CoVar[2][0] = cv02/(N-1);
   CoVar[1][2] = CoVar[2][1] = cv12/(N-1);
}
